package cn.edu.sgu.www.mhxysy.service.chongwu;

import cn.edu.sgu.www.mhxysy.dto.chongwu.ChongwuCategoryDTO;
import cn.edu.sgu.www.mhxysy.entity.chongwu.ChongwuCategory;
import cn.edu.sgu.www.mhxysy.pager.chongwu.ChongwuCategoryPager;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * @author 沐雨橙风ιε
 * @version 1.0
 */
public interface ChongwuCategoryService {

	/**
	 * 上传图片
	 * @param file MultipartFile对象
	 * @return String 文保存的件名
	 * @throws IOException uploadUtils.upload()方法抛出的异常
	 */
	String upload(MultipartFile file) throws IOException;

	/**
	 * 添加宠物类型
	 * @param chongwuCategoryDTO 宠物类型信息
	 */
	void insert(ChongwuCategoryDTO chongwuCategoryDTO);

	/**
	 * 通过ID修改宠物类型信息
	 * @param chongwuCategoryDTO 宠物类型信息
	 */
	void updateById(ChongwuCategoryDTO chongwuCategoryDTO);

	/**
	 * 通过ID修改宠物图片
	 * @param id 宠物类型ID
	 * @param image 图片地址
	 */
	void updateImageById(Integer id, String image);

	/**
	 * 查询全部宠物类型
	 * @return List<ChongwuCategory>
	 */
	List<ChongwuCategory> selectAll();

	/**
	 * 查询特殊宠物类型
	 * @return List<ChongwuCategory>
	 */
	List<ChongwuCategory> selectSpecial();

	/**
	 * 通过ID查询宠物类型
	 * @param id 宠物类型ID
	 * @return ChongwuCategory
	 */
	ChongwuCategory selectById(Integer id);

	/**
	 * 分页条件查询宠物类型列表
	 * @param pager 查询条件
	 * @return Page<ChongwuCategory>
	 */
	Page<ChongwuCategory> selectByPage(ChongwuCategoryPager pager);

	/**
	 * 查询指定等级范围的宠物类型列表
	 * @param min 最小等级
	 * @param max 最大等级
	 * @return List<ChongwuSkillCategory>
	 */
	List<ChongwuCategory> selectByGradeRange(Integer min, Integer max);
}